#!/bin/bash

# 药品管理系统部署脚本
# 包含nginx限流配置

set -e

echo "=== 药品管理系统部署脚本 ==="

# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
    echo "错误: Docker未安装，请先安装Docker"
    exit 1
fi

# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
    echo "错误: Docker Compose未安装，请先安装Docker Compose"
    exit 1
fi

# 创建必要的目录
echo "创建必要的目录..."
mkdir -p logs/nginx
mkdir -p ssl

# 检查nginx配置文件
if [ ! -f "nginx.conf" ]; then
    echo "错误: nginx.conf文件不存在"
    exit 1
fi

# 检查配置文件
if [ ! -f "configs/config.yaml" ]; then
    echo "错误: configs/config.yaml文件不存在"
    exit 1
fi

# 构建Go应用镜像
echo "构建Go应用镜像..."
docker-compose build medicine-app

# 启动服务
echo "启动服务..."
docker-compose up -d

# 等待服务启动
echo "等待服务启动..."
sleep 10

# 检查服务状态
echo "检查服务状态..."
docker-compose ps

# 检查nginx配置
echo "检查nginx配置..."
docker-compose exec nginx nginx -t

# 测试健康检查
echo "测试健康检查..."
if curl -f http://localhost/health > /dev/null 2>&1; then
    echo "✅ 服务启动成功！"
    echo "📊 访问地址: http://localhost"
    echo "🔍 健康检查: http://localhost/health"
    echo "📝 Nginx日志: logs/nginx/"
    echo "🐳 容器管理: docker-compose ps"
else
    echo "❌ 服务启动失败，请检查日志:"
    docker-compose logs
    exit 1
fi

echo ""
echo "=== 限流配置说明 ==="
echo "📈 订单接口限流策略:"
echo "  - 基础限流: 每个IP每秒最多10个请求"
echo "  - 创建订单: 每个IP每秒最多5个请求"
echo "  - 查询订单: 每个IP每秒最多20个请求"
echo "  - 用户级别: 每个用户每秒最多3个请求"
echo "  - 并发连接: 每个IP最多10个并发连接"
echo ""
echo "🛠️ 常用命令:"
echo "  查看日志: docker-compose logs -f"
echo "  重启服务: docker-compose restart"
echo "  停止服务: docker-compose down"
echo "  更新配置: docker-compose up -d --build" 